package com.linyaonan.leetcode.easy._1089;

import java.util.Arrays;

/**
 * 给你一个长度固定的整数数组 arr，请你将该数组中出现的每个零都复写一遍，并将其余的元素向右平移。
 * <p>
 * 注意：请不要在超过该数组长度的位置写入元素。
 * <p>
 * 要求：请对输入的数组 就地 进行上述修改，不要从函数返回任何东西。
 * <p>
 *  
 * <p>
 * 示例 1：
 * <p>
 * 输入：[1,0,2,3,0,4,5,0]
 * 输出：null
 * 解释：调用函数后，输入的数组将被修改为：[1,0,0,2,3,0,0,4]
 * 示例 2：
 * <p>
 * 输入：[1,2,3]
 * 输出：null
 * 解释：调用函数后，输入的数组将被修改为：[1,2,3]
 *  
 * <p>
 * 提示：
 * <p>
 * 1 <= arr.length <= 10000
 * 0 <= arr[i] <= 9
 *
 * @author: Lin
 * @date: 2020/1/12
 */
public class DuplicateZeros {

    public void duplicateZeros(int[] arr) {
        //赋值一个与原数组一样的数组
        int[] arrcopy = Arrays.copyOf(arr, arr.length);
        int t = 0;
        for (int i = 0; i < arrcopy.length; i++) {

            arr[t++] = arrcopy[i];
            if (t > arr.length - 1) {
                return;
            }
            if (arrcopy[i] == 0) {
                arr[t++] = 0;
                if (t > arr.length - 1) {
                    return;
                }
            }
        }
    }
}
